/******************************************************************************
 * Copyright (C) 2012 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.property;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;

import org.apache.log4j.Logger;

/**
 * 配置辅助类
 * 
 * @author 陈大周
 * @since JDK1.6
 * @version 2012-11-28 陈大周 新建
 */
public  class BaseConfigHelper {
    
    /** 日志对象 */
    private final static Logger OBJLOG = Logger.getLogger(BaseConfigHelper.class);
    
    /**
     * 资源文件
     */
    private String resourceFile;
    
    /**
     * 私有构造方法
     */
    protected BaseConfigHelper(String resourceFile) {
        this.resourceFile = resourceFile;
    }
    
    /**
     * 读取class目录下的配置文件
     * 
     * @param strkey [] 查询Map的key值
     * @return Map<String, String>
     */
    public Properties getResources() {
        Properties objProps = null;
        InputStream objInStream = null;
        try {
            URL objURL = BaseConfigHelper.class.getClassLoader().getResource(resourceFile);
            objInStream = objURL.openStream();
        } catch (MalformedURLException e1) {
            OBJLOG.error("请确保BIN目录下存在" + resourceFile, e1);
        } catch (IOException e1) {
            OBJLOG.error("请确保BIN目录下存在" + resourceFile, e1);
        }
        try {
            if (objInStream != null) {
                objProps = new Properties();
                objProps.load(objInStream);
            }
        } catch (IOException e) {
            OBJLOG.error("解析properties文件出错！", e);
        } finally {
            try {
                if (objInStream != null) {
                    objInStream.close();
                }
            } catch (IOException e) {
                objInStream = null;
            }
        }
        return objProps;
    }
    /**
     * 读取class目录下的配置文件
     * 
     * @param strkey [] 查询Map的key值
     * @return Map<String, String>
     */
    @SuppressWarnings("deprecation")
    public Properties getResources(String abosultePath) {
        Properties objProps = null;
        InputStream objInStream = null;
        try {
            File objFile = new File(abosultePath);
            URL objURL = objFile.toURL();
            objInStream = objURL.openStream();
        } catch (MalformedURLException e1) {
            OBJLOG.error("请确保存在文件:" + abosultePath);
        } catch (IOException e1) {
            OBJLOG.error("请确保存在文件:" + abosultePath);
        }
        try {
            if (objInStream != null) {
                objProps = new Properties();
                objProps.load(objInStream);
            }
        } catch (IOException e) {
            OBJLOG.error("解析properties文件出错！");
        } finally {
            try {
                if (objInStream != null) {
                    objInStream.close();
                }
            } catch (IOException e) {
                objInStream = null;
            }
        }
        return objProps;
    }
}